//
//  CZStatusModel.swift
//  CZWeibo
//
//  Created by 左凯旭 on 16/8/13.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

class CZStatusModel: NSObject {

    // MARK: - 模型属性
    // 创建时间
    var created_at: String?
    // 微博ID
    var id: Int64 = 0
    // 微博信息内容
    var text: String?
    // 微博来源
    var source: String?
    // 转发微博
    var retweeted_status:CZStatusModel?
    // int	转发数
    var reposts_count: Int = 0
    // int	评论数
    var comments_count: Int = 0
    //int	表态数
    var attitudes_count: Int = 0
    // 配图
    var pic_urls: [CZPictureModel]?

    //用户数据
    var user: CZUserModel?
    
    init(dict:[String: AnyObject]) {
        super.init()
        
        setValuesForKeysWithDictionary(dict)
    }
    
     // 重写setValueForKey
    override func setValue(value: AnyObject?, forKey key: String) {
        
        if key == "user" {
            // 判断value 是否为nil 且是否可以转成一个字典
            guard let v = value as? [String: AnyObject] else{
                return
            }
            //手动给User  赋值
            
            user = CZUserModel(dict: v)
            
            
        }else if key == "retweeted_status"{
             // 判断value 是否为nil 且是否可以转成一个字典
            guard let v = value as? [String: AnyObject] else{
                return
            }
            //手动赋值
            retweeted_status = CZStatusModel(dict:v)
            
        }else if key == "pic_urls"{
             // 判断value 是否为nil 且是否可以转成一个数组
            
            guard let v = value as? [[String: AnyObject]] else{
                return
            }
             // 创建一个临时可变的数组
            var tmpArray:[CZPictureModel] = [CZPictureModel]()
            
            //遍历数组
            for dic in v {
                
                //创建模型
                let model = CZPictureModel(dict: dic)
                //添加模型
                tmpArray.append(model)
            }
            //赋值
            pic_urls = tmpArray
            
        }
        else{
            super.setValue(value, forKey: key)
        }
      
    }
    
    
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
       
    }
    
}
